package org.jeecg.modules.demo.expert.info.vo;

import java.util.List;
import org.jeecg.modules.demo.expert.info.entity.JkExpert;
import org.jeecg.modules.demo.expert.info.entity.JkExpertWork;
import org.jeecg.modules.demo.expert.info.entity.JkExpertAcademic;
import org.jeecg.modules.demo.expert.info.entity.JkExpertProfile;
import lombok.Data;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.jeecgframework.poi.excel.annotation.ExcelEntity;
import org.jeecgframework.poi.excel.annotation.ExcelCollection;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
import org.jeecg.common.aspect.annotation.Dict;
import org.jeecg.common.constant.ProvinceCityArea;
import org.jeecg.common.util.SpringContextUtils;

import io.swagger.v3.oas.annotations.media.Schema;

/**
 * @Description: 专家信息表
 * @Author: jeecg-boot
 * @Date:   2025-06-07
 * @Version: V1.0
 */
@Data
@Schema(description="专家信息表")
public class JkExpertPage {

	/**主键*/
	@Schema(description = "主键")
    private java.lang.String id;
	/**创建人*/
	@Schema(description = "创建人")
    private java.lang.String createBy;
	/**创建日期*/
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
	@Schema(description = "创建日期")
    private java.util.Date createTime;
	/**更新人*/
	@Schema(description = "更新人")
    private java.lang.String updateBy;
	/**更新日期*/
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
	@Schema(description = "更新日期")
    private java.util.Date updateTime;
	/**所属部门*/
	@Schema(description = "所属部门")
    private java.lang.String sysOrgCode;
	/**姓名*/
	@Excel(name = "姓名", width = 15)
	@Schema(description = "姓名")
    private java.lang.String realName;
	/**性别*/
	@Excel(name = "性别", width = 15, dicCode = "sex")
    @Dict(dicCode = "sex")
	@Schema(description = "性别")
    private java.lang.String gender;
	/**头像*/
	@Excel(name = "头像", width = 15)
	@Schema(description = "头像")
    private java.lang.String personePhone;
	/**出生年月*/
	@Excel(name = "出生年月", width = 15, format = "yyyy-MM-dd")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
	@Schema(description = "出生年月")
    private java.util.Date birthdate;
	/**最高学历*/
	@Excel(name = "最高学历", width = 15, dicCode = "expert_xueli")
    @Dict(dicCode = "expert_xueli")
	@Schema(description = "最高学历")
    private java.lang.String education;
	/**专业*/
	@Excel(name = "专业", width = 15)
	@Schema(description = "专业")
    private java.lang.String major;
	/**毕业院校*/
	@Excel(name = "毕业院校", width = 15)
	@Schema(description = "毕业院校")
    private java.lang.String graduationSchool;
	/**职称/头衔*/
	@Excel(name = "职称/头衔", width = 15)
	@Schema(description = "职称/头衔")
    private java.lang.String title;
	/**专业领域*/
	@Excel(name = "专业领域", width = 15)
	@Schema(description = "专业领域")
    private java.lang.String expertiseField;
	/**所属机构*/
	@Excel(name = "所属机构", width = 15)
	@Schema(description = "所属机构")
    private java.lang.String organization;
	/**联系电话*/
	@Excel(name = "联系电话", width = 15)
	@Schema(description = "联系电话")
    private java.lang.String contactPhone;
	/**电子邮箱*/
	@Excel(name = "电子邮箱", width = 15)
	@Schema(description = "电子邮箱")
    private java.lang.String contactEmail;
	/**认证状态*/
	@Excel(name = "认证状态", width = 15, dicCode = "expert_renz_status")
    @Dict(dicCode = "expert_renz_status")
	@Schema(description = "认证状态")
    private java.lang.String isVerified;
	/**状态*/
	@Excel(name = "状态", width = 15, dicCode = "expert_status")
    @Dict(dicCode = "expert_status")
	@Schema(description = "状态")
    private java.lang.String zjStatus;

	@ExcelCollection(name="专家工作经历")
	@Schema(description = "专家工作经历")
	private List<JkExpertWork> jkExpertWorkList;
	@ExcelCollection(name="专家学术成果")
	@Schema(description = "专家学术成果")
	private List<JkExpertAcademic> jkExpertAcademicList;
	@ExcelCollection(name="专家个人简介")
	@Schema(description = "专家个人简介")
	private List<JkExpertProfile> jkExpertProfileList;

}
